import axios from "axios";
import store from "@/store";
import router from "@/router";
import { Toast } from "vant";

let request = axios.create({
  baseURL: 'http://124.223.14.236:8360'
})
// ===========请求拦截器=================
request.interceptors.request.use((config) => {
  // 一定要return config
  // console.log("所有的请求都走这里...",config);
  // 如果你登录了，你就带上token！

  if (store.getters.token) {
    config.headers["X-Nideshop-Token"] = store.getters.token;
    // config.headers['X-Nideshop-Token'] = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxMTIsImlhdCI6MTY0NjczNzY5MH0.YmstmmGQ2k2UAwR3VbiLlxI92MejElMTTUhlaZxJUH4"
    // 需要携带token的接口才携带token，否则不携带
    // let authUrl = ['/userProfile']
    // if(authUrl.includes(config.url)){
    //   config.headers.Authorization = 'Bearer '+store.getters.token
    // }
  }
  return config
}, error => {
  return Promise.reject(error)
})

// ===========响应拦截器=================
request.interceptors.response.use(response => {
  // console.log("所有的响应结果都会走一下这里");
  // console.log(response)  是响应结果内容
  // 一定要return response
  console.log(response);
  if (response.data.errno === 401) {
    store.commit('setUser', {})
    router.push('/login')
    this.$router.go(0)
  }
  return response
}, async error => {
  // 请求响应返回了错误走这里
  console.dir(error)
  if (error.response && error.response.status === 401) {
    // token过期，过期的处理 // 思路： 那刷新头token去更新新的验证的token
    if (!store.getters.token) return

    // 获取验证token失败，有可能是刷新token都失效了，那就要重新登录
    if (err && err.response.status == 500) {
      Toast.fail('登录失效，请重新登录')
      store.commit('setUser', {})
      router.push('/login')
    }
    return Promise.reject(err)

  } else {
    return Promise.reject(error)
  }

})




export default request;
